<?php
ini_alter("max_execution_time","3600");
ini_alter("default_socket_timeout","3600");

include_once(APPLICATION_ROOT."/web_config.php");
include_once(APPLICATION_ROOT."/config.php");
require_once(APPLICATION_ROOT."/oracleaccess/classes/DbConnect.php" );
require_once(APPLICATION_ROOT."/logs/LogApp.class" );


$connessione = new DbConnect();//connessione viste locale

$data_abbinamento=date('Ymd');

$select_recs="SELECT CIG,PROG_CUI,ID_SIMOG,SCHEDA,DATA_ID,DENOM_STAZIONE_APPALTANTE,CF_RUP,ID_SCHEDA_LOCALE,CF_UTENTE,ID FROM AVCP WHERE SCHEDA='SUBAPPALTI' AND ID_SCHEDA_LOCALE IS NULL ORDER BY cig,prog_cui,ID_SIMOG,data_id ASC";
$query_recs = $connessione -> doquery_oracle($select_recs, 'select');

 
for($r=1; $r<=(count($query_recs)); $r++){
  $cig_xls=$prog_cui_xls=$id_simog_xls=$scheda_db=$data_id_xls=$query_esist = "";
  $cig_xls=     $query_recs[$r][1];
  $prog_cui_xls=$query_recs[$r][2];
  $id_simog_xls=$query_recs[$r][3];
  $scheda_db=   $query_recs[$r][4];
  $data_id_xls= $query_recs[$r][5]; 
	 $id_tabella_avcp= $query_recs[$r][10]; 
    
	 $data_id_xls_db=$giorno=$mese=$anno="";
  $giorno=substr($data_id_xls, 0,2);
  $mese=substr($data_id_xls, 3,2);
  $anno=substr($data_id_xls, 8,2);
      
  $mese_cifre=transfmese($mese);
  $data_id_xls_db=$giorno."-".STRTOUPPER($mese_cifre)."-".$anno;

  //SELECT ID SCHEDA LOCALE
  $sel="SELECT ID,ID_SIMOG FROM  SUBAPPALTI WHERE cig='".$cig_xls."' AND NUM_PROGR='".$prog_cui_xls."' AND DATA_AUTORIZZAZIONE_SUBAPPALTO like '".$data_id_xls_db."%' AND ID_SIMOG IS NULL";
  $rs = $connessione->doquery_oracle($sel, 'select');

  if($rs[1][1]!=""){ 
   
   //VERIFICARE IL NUMERO DI RECORD RITORNATI ... SE PIU DI 1 GESTIRE ASSOCIAZIONE ID SIMOG CONSEQUENZIALE
   if(count($rs)>1){
	$check_multi="n";
    foreach($rs as $k => $v){
     $id_scheda_locale=$v[1];
     $tmp_id_simog=$v[2];
     if($tmp_id_simog=="" and $check_multi=="n"){
	  $check_multi="y";
	  //DA MODIFICARE 
      //ASSOCIAMO IL PRIMO RECORD CORRISPONDENTE SENZA ID_SIMOG ASSOCIATO
      $updateAGG="update SUBAPPALTI set ID_SIMOG='".$id_simog_xls."', SCHEDA_CHIUSA='I', ARCHIVIATA='S' WHERE id='".$id_scheda_locale."' ";
      $connessione->doquery_oracle($updateAGG, 'update');  

      $update_AVCP="update AVCP set ID_SCHEDA_LOCALE='".$id_scheda_locale."',DATA_ABBINAMENTO='".$data_abbinamento."' WHERE ID='".$id_tabella_avcp."'";
      $connessione->doquery_oracle($update_AVCP, 'update');        
     }

    }
   }else{
    //SINGOLO RECORD -OK
    $id_scheda_locale=$rs[1][1];
    
    $updateAGG="update SUBAPPALTI set ID_SIMOG='".$id_simog_xls."', SCHEDA_CHIUSA='I', ARCHIVIATA='S' WHERE id='".$id_scheda_locale."' ";
    $connessione->doquery_oracle($updateAGG, 'update');  

    $update_AVCP="update AVCP set ID_SCHEDA_LOCALE='".$id_scheda_locale."',DATA_ABBINAMENTO='".$data_abbinamento."' WHERE ID='".$id_tabella_avcp."'";
    $connessione->doquery_oracle($update_AVCP, 'update');    
   }   
   
  }else{
  
   //CERCHIAMO PER DIFFERENZA DI DATE  (SCOSTAMENTO DI 1 GG)
   //select TO_DATE('10-SEP-09','DD-MON-RR')-1 AS CC FROM DUAL
   $sel="SELECT ID,ID_SIMOG FROM SUBAPPALTI 
         WHERE cig='".$cig_xls."' AND ID_SIMOG IS NULL  AND NUM_PROGR='".$prog_cui_xls."'
         AND (DATA_AUTORIZZAZIONE_SUBAPPALTO >=TO_DATE('".$data_id_xls_db."','DD-MON-RR')-1 and DATA_AUTORIZZAZIONE_SUBAPPALTO <=TO_DATE('".$data_id_xls_db."','DD-MON-RR')+1)
         ORDER BY DATA_AUTORIZZAZIONE_SUBAPPALTO";
   $rs = $connessione->doquery_oracle($sel, 'select');
   
   if($rs[1][1]!=""){
    

    //VERIFICARE IL NUMERO DI RECORD RITORNATI ... SE PIU DI 1 GESTIRE ASSOCIAZIONE ID SIMOG CONSEQUENZIALE
    if(count($rs)>1){
	 $check_multi="n";
     foreach($rs as $k => $v){
      $id_scheda_locale=$v[1];
      $tmp_id_simog=$v[2];
      if($tmp_id_simog=="" and $check_multi=="n"){
	   $check_multi="y";
       //ASSOCIAMO IL PRIMO RECORD CORRISPONDENTE SENZA ID_SIMOG ASSOCIATO
       $updateAGG="update SUBAPPALTI set ID_SIMOG='".$id_simog_xls."', SCHEDA_CHIUSA='I', ARCHIVIATA='S' WHERE id='".$id_scheda_locale."' ";
       $connessione->doquery_oracle($updateAGG, 'update');  

       $update_AVCP="update AVCP set ID_SCHEDA_LOCALE='".$id_scheda_locale."',DATA_ABBINAMENTO='".$data_abbinamento."' WHERE ID='".$id_tabella_avcp."'";
       $connessione->doquery_oracle($update_AVCP, 'update');        
      }
     }
    }else{
     //SINGOLO RECORD
     $id_scheda_locale=$rs[1][1];
     
     $updateAGG="update SUBAPPALTI set ID_SIMOG='".$id_simog_xls."', SCHEDA_CHIUSA='I', ARCHIVIATA='S' WHERE id='".$id_scheda_locale."' ";
     $connessione->doquery_oracle($updateAGG, 'update');  

     $update_AVCP="update AVCP set ID_SCHEDA_LOCALE='".$id_scheda_locale."',DATA_ABBINAMENTO='".$data_abbinamento."' WHERE ID='".$id_tabella_avcp."'";
     $connessione->doquery_oracle($update_AVCP, 'update');    
    }     
   }else{
    $message["SCHEDA"]="SUBAPPALTI";
    $message["CIG"]=$cig_xls;
    $message["NUM_PROGR"]="";
    $message["NUM_PROGR_SCHEDA"]="";
    $message["OPERAZIONE"]=""; 
    $message["MSG"]="Update fallita: non esiste il CIG.";
    LogApp::getInstance()->LogWrite($message);   
   }        
  }        
}

echo("<br>END SUBAPPALTI");

?>